package avicit.bdp.dds.api.dto;

import avicit.bdp.common.base.BaseDTO;
import avicit.platform6.core.annotation.log.FieldRemark;
import avicit.platform6.core.annotation.log.Id;
import avicit.platform6.core.annotation.log.LogField;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;

import javax.persistence.Column;
import javax.persistence.Table;
import javax.persistence.Transient;
import java.util.List;


/**
 * 基础函数表实体
 * 
 */
@ApiModel(value = "FunctionDTO", description = "基础函数表")
@Table(name = "bdp_dds_function")
public class FunctionDTO extends BaseDTO {

	/**
	* 主键
	*
	*/
	@LogField
	@ApiModelProperty(value = "主键")
	@FieldRemark(column = "id", field = "id", name = "主键")
	@Column(name = "id")
	@Id
	@javax.persistence.Id
	private String id;

	/**
	 * 名称
	 * 
	 */
	@LogField
	@ApiModelProperty(value = "名称")
	@FieldRemark(column = "name", field = "name", name = "名称")
	@Column(name = "name")
    private String name;
	/**
	 * 父节点id
	 * 
	 */
	@LogField
	@ApiModelProperty(value = "父节点id")
	@FieldRemark(column = "parent_id", field = "parentId", name = "父节点id")
	@Column(name = "parent_id")
    private String parentId;
	/**
	 * 备注
	 * 
	 */
	@LogField
	@ApiModelProperty(value = "备注")
	@FieldRemark(column = "remark", field = "remark", name = "备注")
	@Column(name = "remark")
    private String remark;
	/**
	 * 是否分类 0-否 1-是
	 * 
	 */
	@LogField
	@ApiModelProperty(value = "是否分类 0-否 1-是")
	@FieldRemark(column = "leaf", field = "leaf", name = "是否分类 0-否 1-是")
	@Column(name = "leaf")
    private Integer leaf;

	/**
	 * 返回类型 1-具体值 2-boolean值
	 *
	 */
	@LogField
	@ApiModelProperty(value = "返回类型 1-具体值 2-boolean值")
	@FieldRemark(column = "result_type", field = "resultType", name = "返回类型 1-具体值 2-boolean值")
	@Column(name = "result_type")
	private Integer resultType;

	/**
	 * 是否为函数 0-否 1-是
	 *
	 */
	@LogField
	@ApiModelProperty(value = "是否为函数 0-否 1-是")
	@FieldRemark(column = "funable", field = "funable", name = "是否为函数 0-否 1-是")
	@Column(name = "funable")
	private Integer funable;

	/**
	 * 排序
	 * 
	 */
	@LogField
	@ApiModelProperty(value = "排序")
	@FieldRemark(column = "order_by", field = "orderBy", name = "排序")
	@Column(name = "order_by")
    private Integer orderBy;

	/**
	 * 子对象集合
	 */
	@Transient
	private List<FunctionDTO> children;

	public String getId() {
		return id;
	}

	public void setId(String id) {
		this.id = id;
	}

	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}

	public String getParentId() {
		return parentId;
	}

	public void setParentId(String parentId) {
		this.parentId = parentId;
	}

	public String getRemark() {
		return remark;
	}

	public void setRemark(String remark) {
		this.remark = remark;
	}

	public Integer getLeaf() {
		return leaf;
	}

	public void setLeaf(Integer leaf) {
		this.leaf = leaf;
	}

	public Integer getOrderBy() {
		return orderBy;
	}

	public void setOrderBy(Integer orderBy) {
		this.orderBy = orderBy;
	}

	public List<FunctionDTO> getChildren() {
		return children;
	}

	public void setChildren(List<FunctionDTO> children) {
		this.children = children;
	}

	public Integer getResultType() {
		return resultType;
	}

	public void setResultType(Integer resultType) {
		this.resultType = resultType;
	}

	public Integer getFunable() {
		return funable;
	}

	public void setFunable(Integer funable) {
		this.funable = funable;
	}
}

